package com.gjw.designpattern.proxy.staticProxy;

/**
 * 代理模式  （静态代理）
 * 三种角色：
 * 1.抽象主题（Subject）类：通过接口或抽象类声明真实主题和代理对象实现的业务方法。
 * 2.真实主题（Real Subject）类：实现了抽象主题中的具体业务，是代理对象所代表的真实对象，是最终要引用的对象。
 * 3.代理（Proxy）类：提供了与真实主题相同的接口，其内部含有对真实主题的引用，它可以访问、控制或扩展真实主题的功能。
 */
public class Client {


    public static void main(String[] args) {
        System.out.println("不使用代理");
        Person person = new Person("张三");
        person.marry();

        System.out.println("-------------------------------");
        System.out.println("使用婚庆公司代理");
        Person person1 = new Person("李四");
        WeddingCompany weddingCompany = new WeddingCompany(person1);
        weddingCompany.marry();
    }
}
